' 检查 node 进程是否正在运行
Function IsNodeProcessRunning()
    Dim objWMIService, colProcesses
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'node.exe'")
    IsNodeProcessRunning = colProcesses.Count > 0
End Function

' 关闭所有正在运行的 node 进程
Function KillNodeProcesses()
    Dim objWMIService, colProcesses, objProcess
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'node.exe'")
    For Each objProcess In colProcesses
        objProcess.Terminate()
    Next
    KillNodeProcesses = colProcesses.Count > 0
End Function

' 提前创建 WScript.Shell 对象
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")

If IsNodeProcessRunning() Then
    ' 关闭所有正在运行的 node 进程
    KillNodeProcesses()
End If

' 启动新的 node timeTask.js 任务
' 0：隐藏窗口。
' 1：正常显示窗口。
' 2：最小化窗口。
' 3：最大化窗口。
WshShell.Run "node timeTask.js", 2, False